package bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Event implements Comparable<Event>, Serializable {
    /**
     * 时间戳
     */
    public Long timestamp;

    /**
     * 用户 id
     */
    public String userId;

    /**
     * ip 地址
     */
    public String ipAddress;

    /**
     * 事件类型
     */
    public String eventType;

    /**
     * 备用字段，用于扩充单条数据的数据大小
     */
    public String remark;

    /**
     * 下载状态：0-下载失败；1-下载成功
     */
    public String downloadStatus;

    /**
     * 文件名
     */
    public String filename;

    public Event(String userId, String ipAddress, Long timestamp) {
        this.timestamp = timestamp;
        this.userId = userId;
        this.ipAddress = ipAddress;
    }

    /**
     * DataStream 的 keyby 方法分组排序使用字段
     */
    public String getKey() {
        return "1";
    }

    @Override
    public int compareTo(Event o) {
        return Long.compare(this.timestamp, o.timestamp);
    }
}
